package com.ler.yrmall.product.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ler.yrmall.product.entity.AttrEntity;
import com.ler.yrmall.product.entity.AttrGroupEntity;
import com.ler.yrmall.product.form.AttrGroupForm;
import com.ler.yrmall.product.vo.AttrGroupVO;
import com.ler.yrmall.product.vo.SpuBaseAttrGroupVO;

import java.util.List;

/**
 * @author Leron
 */
public interface AttrGroupService extends IService<AttrGroupEntity> {

    /**
     * 根据分类id查询
     * @param request
     * @return
     */
    IPage<AttrGroupVO> find(AttrGroupForm request);


    /**
     * 擦讯全部
     * @param request
     * @return
     */
    List<AttrGroupVO> list(AttrGroupForm request);

    /**
     * 根据分组id获取关联的 attr 列表
     * @param attrGroupId
     * @return
     */
    List<AttrEntity> getAttrRelation(Long attrGroupId);

    /**
     * 获取没有关联的属性列表
     * @param request
     * @return
     */
    IPage<AttrEntity> getNoAttrRelation(AttrGroupForm request);

    /**
     * 根据分类id查询属性分组以及关联的属性
     * @param categoryId
     * @return
     */
    List<AttrGroupVO> getAttrGroupWithAttrs(Long categoryId);

    List<SpuBaseAttrGroupVO> getAttrGroupWithAttrsBySpuId(Long spuId, Long catalogId);
}

